/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {

  .code-editor,
  .resize,
  .toolbar,
  footer {
    display: none;
  }
}

/* ==========================================================================
   Base / Reset Styles
   ========================================================================== */

html {
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  line-height: 1.5;
  background-color: var(--html-bg-color, #f5f5f5);
  min-height: 100vh;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  margin: 0;
  min-height: 100vh;
}

:root {
  --description-font-size: 14px;
  --description-font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  --description-font-style: normal;
  --description-font-weight: 400;
  --description-line-height: 17px;
  --note-description-padding: 6px;

  /* New Arrow Styles Variables */
  --line-color: var(--signal-line-color, #222);
  --bg: #f7f7f9;
  --size: var(--signal-arrowhead-thickness, 12px);
  /* arrowhead size (height) */
  --thickness: var(--signal-line-thickness, 1.5px);
  /* message line thickness */
  --arrow-stroke-width: var(--signal-line-thickness, 1.5px);
  /* thickness of the open arrow lines */
  --arrowhead-color: var(--signal-arrowhead-color, #222);
  /* arrowhead color (separate from line color) */
  --self-end-bottom: -6px;
  /* bottom position for .self-end based on line thickness */

  /* Participant styling variables */
  --participant-padding: 12px;
  --participant-bg-color: #f3f4f6;
  --participant-font-color: #000000;
  --participant-border-width: 1px;

  /* Note styling variables */
  --note-border-width: 1px;
}

a {
  color: inherit;
  text-decoration: inherit;
}

/* ==========================================================================
   Layout / Container Styles
   ========================================================================== */

.macos-app {
  margin: 0 auto;
}

.main {
  margin: 0 20px 0 0;
  font-family: system-ui, Arial, sans-serif;
  display: flex;
}

.msd-container {
  flex: 1;
  padding: 0px;
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  /* margin-top: 60px; */
  margin-left: 0px;
  margin-right: 0px;
}

/* ==========================================================================
   Code Editor / Sidebar Styles
   ========================================================================== */

.code-editor {
  flex: 0 0 auto;
  width: var(--sidebar-width, 460px);
  min-width: 300px;
  padding: 0;
  box-sizing: border-box;
  z-index: 100;
  background-color: #fff;
}

.code-editor #editor {
  width: var(--sidebar-width, 460px);
  height: calc(100vh - 84px);
  position: fixed;
  top: 84px;
}

.code-editor #editor .monaco-editor {
  height: 100%;
}

.code-editor-header {
  padding: 8px 0;
  margin: 0 auto;
  text-align: center;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: space-around;
  position: fixed;
  top: 0;
  z-index: 10;
  left: 0;
  background: #ffffff;
  border-bottom: 1px solid #ccc;
  width: var(--sidebar-width, 460px);
}

.editor-actions {
  display: flex;
  position: relative;
  margin: 8px 0;
  gap: 10px 16px;
  justify-content: center;
}

.editor-actions a {
  width: 48px;
  height: 48px;
  margin-top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02), 0 8px 24px rgba(0, 0, 0, 0.04);
}

.editor-actions a:hover {
  background: rgba(0, 0, 0, 0.06);
}

.editor-actions svg {
  width: 20px;
  height: 20px;
}

.editor-hidden .resize {
  display: none;
}

.editor-hidden .code-editor {
  display: none !important;
}

.editor-reveal-btn {
  position: fixed !important;
  top: 50%;
  left: 8px;
  transform: translateY(-50%);
  display: none;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 72px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(0, 0, 0, 0.12);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 1px 0 rgba(0, 0, 0, 0.04);
  cursor: pointer;
  z-index: 1200;
  transition: background 0.2s ease;
}

.editor-reveal-btn:hover {
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16), 0 1px 0 rgba(0, 0, 0, 0.04);
}

.editor-reveal-btn .chevron {
  font-size: 24px;
  line-height: 24px;
  color: #1d1d1f;
  transform: translateX(1px);
}

.resize {
  height: 100vh;
  width: 4px;
  flex: 0 0 10px;
  margin: 0 10px;
}

.resize .bar {
  position: fixed;
  left: var(--sidebar-width, 460px);
  width: 6px;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.06);
  cursor: ew-resize;
  z-index: 100;
  transition: left 0s;
}

.resize .bar:hover {
  border-right: 1.5px dashed #64cbec;
}

/* Word wrap toggle */
.word-wrap-toggle {
  width: 48px;
  height: 48px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.word-wrap-toggle input[type="checkbox"] {
  display: none;
}

.toggle-switch {
  width: 44px;
  height: 24px;
  background-color: rgba(0, 0, 0, 0.1);
  border-radius: 12px;
  position: relative;
  transition: background-color 0.2s ease;
}

.word-wrap-toggle input[type="checkbox"]:checked+.toggle-switch {
  background-color: rgba(0, 122, 255, 0.8);
}

.toggle-slider {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 20px;
  height: 20px;
  background-color: white;
  border-radius: 50%;
  transition: transform 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.word-wrap-toggle input[type="checkbox"]:checked+.toggle-switch .toggle-slider {
  transform: translateX(20px);
}

/* Monaco Editor overrides */
.monaco-line-highlight {
  background-color: rgba(255, 230, 109, 0.3) !important;
}

/* ==========================================================================
   Diagram Components - Page Title
   ========================================================================== */

.page-title {
  align-self: baseline;
  width: 100%;
  text-align: center;
  margin: 40px auto 66px;
  white-space: nowrap;
  font-size: 18px;
  font-family: var(--description-font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", Segoe UI, Roboto, Helvetica, Arial, sans-serif);
  font-style: var(--description-font-style, normal);
  font-weight: var(--description-font-weight, 400);
}

/* ==========================================================================
   Diagram Components - Sections (Participants / Lifelines)
   ========================================================================== */

.section-start,
.section-end,
.section {
  margin: 0 50px;
  position: relative;
  display: inline-block;
  min-width: 150px;
  font-size: 10px;
  text-align: center;
}

.section-start,
.section-end {
  margin: 0 !important;
}

.section h2 {
  border: var(--participant-border-width, 1px) solid #c2c2c2;
  padding: var(--participant-padding, 12px);
  display: inline-block;
  min-width: 154px;
  background-color: var(--participant-bg-color, #f3f4f6);
  color: var(--participant-font-color, #000000);
  border-radius: 5px;
  box-sizing: border-box;
  z-index: 30;
  position: relative;
  font-size: var(--description-font-size, 14px);
  font-family: var(--description-font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", Segoe UI, Roboto, Helvetica, Arial, sans-serif);
  font-style: var(--description-font-style, normal);
  font-weight: var(--description-font-weight, 400);
  /* transition: transform 0.15s ease-out;
  will-change: transform; */
}

.section h2.sticky-header {
  position: sticky;
  top: 46px;
}

/* Actor participant styling - remove background and border */
.section h2.actor-participant {
  background-color: transparent !important;
  border: none !important;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
}

/* Actor stick figure SVG positioning - placed below the title */
.section h2.actor-participant .actor-stick-figure {
  width: 50px;
  height: 50px;
  position: relative;
  z-index: 1;
}

/* Actor stick figure SVG element styling */
.section h2.actor-participant .actor-stick-figure .actor {
  stroke: #888888;
  stroke-width: 1.5px;
  stroke-linecap: round;
  fill: #f3f4f6;
}

/* Dark theme actor styling */
.theme-dark .section h2.actor-participant {
  background-color: transparent !important;
  border: none !important;
}

/* Actor participant line positioning */
.section.actor-participant .line {
  top: 100px;
}

.section .line {
  top: 62px;
}

/* Boundary participant styling - remove background and border */
.section h2.boundary-participant {
  background-color: transparent !important;
  border: none !important;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
}

/* Boundary icon SVG positioning - placed below the title */
.section h2.boundary-participant .boundary-icon-figure {
  width: 50px;
  height: 50px;
  position: relative;
  z-index: 1;
}

/* Boundary icon SVG element styling */
.section h2.boundary-participant .boundary-icon-figure .boundary-icon {
  stroke: #888888;
  stroke-width: 1.5px;
  fill: #f3f4f6;
}

/* Dark theme boundary styling */
.theme-dark .section h2.boundary-participant {
  background-color: transparent !important;
  border: none !important;
}

/* Boundary participant line positioning */
.section.boundary-participant .line {
  top: 100px;
}

/* Control participant styling - remove background and border */
.section h2.control-participant {
  background-color: transparent !important;
  border: none !important;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
}

/* Control icon SVG positioning - placed below the title */
.section h2.control-participant .control-icon-figure {
  width: 50px;
  height: 50px;
  position: relative;
  z-index: 1;
}

/* Control icon SVG element styling */
.section h2.control-participant .control-icon-figure .control-icon {
  stroke: #888888;
  stroke-width: 1.5px;
  fill: #f3f4f6;
}

/* Control arrow (polygon) should remain black for visibility */
.section h2.control-participant .control-icon-figure .control-icon.control-arrow {
  fill: #000;
}

/* Dark theme control styling */
.theme-dark .section h2.control-participant {
  background-color: transparent !important;
  border: none !important;
}

/* Control participant line positioning */
.section.control-participant .line {
  top: 100px;
}

/* Entity participant styling - remove background and border */
.section h2.entity-participant {
  background-color: transparent !important;
  border: none !important;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
}

/* Entity icon SVG positioning - placed below the title */
.section h2.entity-participant .entity-icon-figure {
  width: 50px;
  height: 50px;
  position: relative;
  z-index: 1;
}

/* Entity icon SVG element styling */
.section h2.entity-participant .entity-icon-figure .entity-icon {
  stroke: #888888;
  stroke-width: 1.5px;
  fill: #f3f4f6;
}

/* Dark theme entity styling */
.theme-dark .section h2.entity-participant {
  background-color: transparent !important;
  border: none !important;
}

/* Entity participant line positioning */
.section.entity-participant .line {
  top: 100px;
}

/* Database participant styling - remove background and border */
.section h2.database-participant {
  background-color: transparent !important;
  border: none !important;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
}

/* Database icon SVG positioning - placed below the title */
.section h2.database-participant .database-icon-figure {
  width: 60px;
  height: 60px;
  position: relative;
  z-index: 1;
}

/* Database cylinder SVG element styling */
.section h2.database-participant .database-icon-figure .database-cylinder {
  stroke: #888888;
  stroke-width: 1.5px;
  fill: #f3f4f6;
}

/* Dark theme database styling */
.theme-dark .section h2.database-participant {
  background-color: transparent !important;
  border: none !important;
}

/* Database participant line positioning */
.section.database-participant .line {
  top: 100px;
}

/* Collections participant styling - remove background and border */
.section h2.collections-participant {
  background-color: transparent !important;
  border: none !important;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  margin-top: 26px !important;
}

/* Collections container for overlapping rectangles */
.section h2.collections-participant .collections-container {
  position: relative;
  width: 180px;
  height: 55px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Collection rectangle styling */
.section h2.collections-participant .collection-rect {
  position: absolute;
  border: 1.5px solid #c2c2c2;
  background-color: #f3f4f6;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  box-sizing: border-box;
  font-size: 14px;
  text-align: center;
  line-height: 1.2;
  border-radius: 3px;
}

/* First rectangle - positioned at top (with text) - shifted down and left */
.section h2.collections-participant .collection-rect-1 {
  left: 0;
  top: 7px;
  width: 150px;
  height: 38px;
  z-index: 2;
}

/* Second rectangle - positioned above and offset to create overlap */
.section h2.collections-participant .collection-rect-2 {
  left: 5px;
  top: 0;
  width: 150px;
  height: 38px;
  z-index: 1;
}

/* Dark theme collections styling */
.theme-dark .section h2.collections-participant {
  background-color: transparent !important;
  border: none !important;
}

.theme-dark .section h2.collections-participant .collection-rect {
  border-color: white;
  background-color: color(srgb 0.1698 0.1848 0.1889);
  color: white;
}

/* Queue participant styling - remove background and border */
.section h2.queue-participant {
  background-color: transparent !important;
  border: none !important;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
}

/* Queue icon SVG positioning - placed below the title */
.section h2.queue-participant .queue-icon-figure {
  width: 90px;
  height: 60px;
  position: relative;
  z-index: 1;
}

/* Queue cylinder SVG element styling */
.section h2.queue-participant .queue-icon-figure .queue-cylinder {
  stroke: #888888;
  stroke-width: 1.5px;
  fill: #f3f4f6;
}

/* Dark theme queue styling */
.theme-dark .section h2.queue-participant {
  background-color: transparent !important;
  border: none !important;
}

/* Queue participant line positioning */
.section.queue-participant .line {
  top: 100px;
}

.line {
  position: absolute;
  width: 1px;
  height: 100vh;
  left: 50%;
  top: 20px;
  transform: translateX(-50%);
  z-index: 8;
}

.line svg {
  position: absolute;
  top: 0;
  left: 0;
}

.line line {
  stroke: var(--timeline-color, #676767);
  stroke-dasharray: 13 10;
}

.msd-container .line svg {
  width: 1.5px;
  fill: var(--timeline-color, #333);
  stroke: var(--timeline-color, #333);
  stroke-width: 2.5px;
  height: 10000px;
}

/* ==========================================================================
   Diagram Components - Arrows (Signals)
   ========================================================================== */

.message {
  position: relative;
  flex: 1 1 auto;
  height: calc(var(--size) * 0.5 + var(--thickness));
  display: flex;
  align-items: center;
  border-radius: 20px;
  z-index: 15;
}

.message .message-line {
  height: var(--thickness);
  background: none;
  border-top: var(--thickness) solid var(--line-color);
  margin-top: calc(var(--thickness));
  width: 100%;
  position: absolute;
  /* Ensure line is absolute within message */
  top: 0;
  left: 0;
}

.arrow-open-head.message .message-line {
  margin-top: 2px;
}

.dashed .message-line {
  background: none;
  border-top: var(--thickness) dashed var(--line-color);
  /* margin-top: calc(var(--thickness) / 2); */
}

/* --- ARROW BASE STYLES --- */
.arrow-filled,
.arrow-open,
.arrow-left.filled,
.arrow-right.filled,
.arrow-left.open,
.arrow-right.open {
  position: absolute;
  top: 50%;
  pointer-events: none;
  transform: translateY(-50%);
  margin-top: -2px;
}

/* ----------------------------------------------------- */
/* ----- 1. FILLED TRIANGLE (synchronous call) ----- */
/* ----------------------------------------------------- */
.arrow-filled,
.arrow-right.filled,
.arrow-left.filled {
  --a-size: var(--size);
  width: calc(var(--a-size) * 1);
  height: var(--a-size);
  background: var(--arrowhead-color);
  right: 0px;
  /* Offset to push the filled arrow tip to the edge */
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  -webkit-mask-image: linear-gradient(#000 0 0);
  mask-image: linear-gradient(#000 0 0);
}

/* --- Single Left Filled Arrow --- */
.message:not(.bi-directional).left .arrow-filled {
  transform: translateY(-50%) rotate(180deg);
  left: 0px;
  /* Offset for the left tip */
  right: auto;
}

/* --- Dedicated Bi-directional Left Filled Arrow --- */
.arrow-left.filled {
  /* FIX: ONLY apply left-pointing transformations and offsets */
  transform: translateY(-50%) rotate(180deg);
  left: 0px;
  /* Offset for the left tip */
  right: auto;
}

/* ----------------------------------------------------- */
/* ----- 2. OPEN / HOLLOW "V" ARROW (asynchronous / return) ----- */
/* ----------------------------------------------------- */
.arrow-open,
.arrow-right.open,
.arrow-left.open {
  /* Border Trick (V-shape) */
  width: calc(var(--size)/1.4);
  height: calc(var(--size)/1.4);
  right: 0;
  /* Aligned with the end of the message line */
  transform: translateY(-50%) rotate(45deg);
  border: var(--arrow-stroke-width) solid var(--arrowhead-color);
  border-left: none;
  border-bottom: none;
  margin-top: calc(var(--thickness) / -2);
}

/* --- Single Left Open Arrow --- */
.message:not(.bi-directional).left .arrow-open {
  transform: translateY(-50%) rotate(225deg);
  left: 0;
  /* Aligned with the start of the message line */
  right: auto;
}

/* --- Dedicated Bi-directional Left Open Arrow --- */
.arrow-left.open {
  /* FIX: ONLY apply left-pointing transformations and offsets */
  transform: translateY(-50%) rotate(225deg);
  left: 0;
  /* Aligned with the start of the message line */
  right: auto;
}


/* --- SELF-MESSAGE SPECIFIC STYLES --- */
.self-message {
  /* Define the area for the loop to sit in (adjust width/height as needed) */
  width: 50px;
  /* Was 150px in demo, but we need it smaller for the app or dynamic */
  /* height: 30px; Vertical height of the loop - set dynamically in JS */
  /* flex: 0 0 150px; */
  /* Fix width so lanes don't overlap */
  /* margin-left: 20px; */
  /* Position it slightly away from the label */
  position: absolute;

  /* New Border Styles */
  border-top: var(--thickness) solid var(--line-color);
  border-right: var(--thickness) solid var(--line-color);
  border-bottom: var(--thickness) solid var(--line-color);
  border-left: none;
  border-radius: 0 12px 12px 0;
  z-index: 15;
}

/* Dashed variant for self-message */
.dashed.self-message {
  border-top-style: dashed;
  border-right-style: dashed;
  border-bottom-style: dashed;
}

/* Arrowhead positioning for the self-message end (pointing left at bottom) */
.self-end {
  position: absolute;
  bottom: var(--self-end-bottom, -6px);
  /* Position the tip below the line */
  top: auto;
  /* Override top: 50% from .arrow-filled */
  left: 0;
  right: auto;
  /* Rotate filled arrow to point left (180deg) */
  transform: translateY(0%) rotate(180deg);
  margin-left: 0px;
  /* Offset to align tip with the start of the line */
}

/* Override fill triangle size for the arrow that points down */


/* Override open arrow size/rotation for the self-message end (pointing left) */
.arrow-open.self-end {
  /* Rotate V-shape arrow to point left (225deg) */
  transform: translateY(0%) rotate(225deg);
  left: 0;
  /* Fine-tune horizontal position */
  bottom: var(--self-end-bottom, -6px);
  /* Fine-tune vertical position */
  right: auto;
}

.arrow-self.arrow-half-sync-rtl:after,
.arrow-self.arrow-half-sync-ltr:after {
  bottom: -1px;
  width: 12px;
  height: 1.4px;
  border: 0;
  transform: translate(0, -4px) rotate(320deg);
  right: 0;
  border-radius: 3px;
  background-color: black;
}

/* ==========================================================================
   Diagram Components - Signal / Arrow Descriptions
   ========================================================================== */

.description {
  position: absolute;
  top: 50%;
  left: 50%;
  white-space: nowrap;
  transform: translate(-50%, 0);
  padding: 4px;
  font-size: var(--description-font-size, 14px);
  font-family: var(--description-font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", Segoe UI, Roboto, Helvetica, Arial, sans-serif);
  font-style: var(--description-font-style, normal);
  font-weight: var(--description-font-weight, 400);
  line-height: var(--description-line-height, 18px);
  z-index: 15;
}

.description.self-arrow-description {
  transform: translate(-100%, 0);
  max-width: 300px;
  /* Limit width so text wraps */
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
  /* Allow text to wrap */
}

.description.self-arrow-description.text-location-right {
  transform: translate(55px, 0);
  max-width: 300px;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}

.msd-container .section:first-child .self-arrow-description {
  transform: translate(-130px, 0);
  max-width: 300px;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}

/* ==========================================================================
   Diagram Components - Notes
   ========================================================================== */

.note-description {
  word-wrap: break-word;
  background-color: var(--note-bg-color, #ffcda9);
  border-radius: 4px;
  padding: var(--note-description-padding, 6px) !important;
  border: var(--note-border-width, 1px) solid #959595;
  text-align: left;
  /* max-width: 620px; */
  overflow: auto;
  font-size: var(--description-font-size, 14px);
  font-family: var(--description-font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", Segoe UI, Roboto, Helvetica, Arial, sans-serif);
  font-style: var(--description-font-style, normal);
  font-weight: var(--description-font-weight, 400);
  color: var(--note-font-color, black);
}

.note-description-left {
  transform: translateX(-100%) !important;
}

.note-description-right {
  transform: translateX(0%) !important;
}

/* Signal-relative notes (positioned alongside arrows) */
.signal-note {
  white-space: nowrap;
  /* max-width: 300px; */
  font-size: var(--description-font-size, 14px);
  font-family: var(--description-font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", Segoe UI, Roboto, Helvetica, Arial, sans-serif);
  font-style: var(--description-font-style, normal);
  font-weight: var(--description-font-weight, 400);
  padding: 4px 8px !important;
  margin: 0;
  /* No margin - flush against timeline */
}

/* ==========================================================================
   External Input/Output Styles
   ========================================================================== */

/* Circle on the left side for external-input */
.external-input::before {
  content: '';
  position: absolute;
  left: -3px;
  top: calc(var(--signal-line-thickness, 1.5px) / 2 + var(--signal-line-thickness, 1.5px));
  transform: translateY(-50%);
  width: calc(var(--signal-line-thickness, 1.5px) + 8px);
  height: calc(var(--signal-line-thickness, 1.5px) + 8px);
  border-radius: 50%;
  background-color: var(--line-color, #222);
  z-index: 1;
}

/* Circle on the right side for external-output */
.external-output::after {
  content: '';
  position: absolute;
  right: -7px;
  top: calc(var(--signal-line-thickness, 1.5px) / 2 + var(--signal-line-thickness, 1.5px));
  transform: translateY(-50%);
  width: calc(var(--signal-line-thickness, 1.5px) + 8px);
  height: calc(var(--signal-line-thickness, 1.5px) + 8px);
  border-radius: 50%;
  background-color: var(--line-color, #222);
  z-index: 1;
}

/* ==========================================================================
   Diagram Components - Interaction Frames (alt, opt, loop, par, neg, group, ref)
   ========================================================================== */

.frame-item,
.loop,
.group,
.alt,
.opt,
.ref-box,
.par,
.neg {
  border: 1px solid #616161;
  position: absolute;
  text-align: left;
  padding-right: 14px;
  background: rgba(225, 208, 102, 0.08);
  z-index: 7;
  border-radius: 4px;
  overflow: hidden;
}

.alt {
  background: rgba(225, 208, 102, 0.08);
}

/* 
.frame-label,
.group-description,
.frame-type-label {
  position: relative;
  left: 0;
  background: white;
  padding: 5px 21px;
  font-size: 12px;
  border-radius: 0 0 4px 0;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  text-wrap: nowrap;
  top: 3px;
border-top: 0;
font-family: var(--description-font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", Segoe UI, Roboto, Helvetica, Arial, sans-serif);
font-style: var(--description-font-style, normal);
font-weight: var(--description-font-weight, 400);
}

.group-description,
.frame-type-label {
  position: absolute;
  min-width: 40px;
  height: 20px;
  background: white;
  border: 1px solid black;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 13px), calc(100% - 12px) 100%, 0 100%);
  top: 0px;
  border-top: 0px;
  border-left: 0px;
  padding: 3px 10px 3px 10px;
  padding-left: 10px !important;
  text-align: center;
  line-height: 20px;

}

.group-description::after,
.frame-type-label::after {
  content: '';
  position: absolute;
  right: -1px;
  bottom: 12px;
  width: 18px;
  height: 1px;
  background: black;
  transform-origin: bottom right;
  transform: rotate(313deg) translate(0px, 0px);

}


.group-description {
  white-space: nowrap;
  cursor: pointer;
}

*/

.frame-label {
  display: inline-block;
}

.frame-item>span,
.frame-type-label {
  color: #000000;
  font-weight: bold;
  font-size: 13px;
  margin-right: 20px;
  white-space: nowrap;
  padding-left: 86px;
}

.frame-type-label {
  cursor: pointer;
}

.ref-box>div {
  text-align: center;
  font-size: 1.5em;
}

.alt-else {
  border-bottom: 1px dashed #000;
  position: absolute;
  text-align: left;
  z-index: 20;
  cursor: pointer;
}

.alt-else>span {
  color: #000000;
  font-weight: bold;
  font-size: 13px;
  margin-left: 86px;
  white-space: nowrap;
}

/* Dark mode alt-else text and dashed line */
.theme-dark .alt-else {
  border-bottom-color: #ffffff !important;
}

.theme-dark .alt-else>span {
  color: #ffffff !important;
}

/* Frame corner line decorations */
.frame-label .corner-line-vertical,
.ref-box .corner-line-vertical,
.group-description .corner-line-vertical {
  position: absolute;
  top: 0;
  right: -4px;
  height: 16px;
  width: 12px;
  border-right: 1px solid #ccc;
  pointer-events: none;
  z-index: 2;
  background-color: white;
}

.frame-label .corner-line-diagonal,
.ref-box .corner-line-diagonal,
.group-description .corner-line-diagonal {
  position: absolute;
  top: 16px;
  right: -5px;
  width: 9px;
  height: 15px;
  background: #fff;
  transform: rotate(45deg);
  transform-origin: top right;
  pointer-events: none;
  z-index: 1;
  border-right: 1px solid #ccc;
  border-radius: 3px;
}

/* ==========================================================================
   Diagram Components - Activation Boxes
   ========================================================================== */

.activate-section {
  position: absolute;
  width: 12px;
  border: 1px solid #909090;
  background-color: #fdfdfd;
  left: 50%;
  transform: translateX(-50%);
  z-index: 8;
}

/* ==========================================================================
   Diagram Components - Dividers
   ========================================================================== */

.divider {
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  position: absolute;
  height: 6px;
  z-index: 8;
  display: flex;
  align-items: center;
  justify-content: center;
}

.divider>div {
  display: inline-block;
  padding: 4px 36px;
  background: white;
  border: 1px solid #000;
  font-size: 13px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 3px;
}

/* ==========================================================================
   Diagram Components - Participant Boxes
   ========================================================================== */

.section-box {
  position: absolute;
  top: -45px;
  height: 10000px;
  z-index: 1;
  /* border-radius: 4px; */
  border: 0.5px solid #1f1c1c
}

.box-title {
  font-size: 16px;
  position: absolute;
  top: -28px;
  font-weight: 500;
  z-index: 1;
}

/* ==========================================================================
   Utility Classes
   ========================================================================== */

.flex {
  display: flex;
}

.flex-col {
  flex-direction: column;
}

.items-center {
  align-items: center;
}

.justify-center {
  justify-content: center;
}

.w-6 {
  width: 1.5rem;
}

.w-8 {
  width: 2rem;
}

.w-12 {
  width: 3rem;
}

.w-16 {
  width: 4rem;
}

.h-6 {
  height: 1.5rem;
}

.h-8 {
  height: 2rem;
}

.h-12 {
  height: 3rem;
}

.h-full {
  height: 100%;
}

.mt-2 {
  margin-top: 0.5rem;
}

.mt-3 {
  margin-top: 0.75rem;
}

.border-t {
  border-top-width: 1px;
  border-top-style: solid;
}

.border-gray-300 {
  border-color: rgba(209, 213, 219, 1);
}

.text-gray-700 {
  color: rgba(55, 65, 81, 1);
}

.text-gray-800 {
  color: rgba(31, 41, 55, 1);
}

.rounded {
  border-radius: 0.25rem;
}

.bg-gray-100 {
  background-color: rgba(243, 244, 246, 1);
}

.overflow-hidden {
  overflow: hidden;
}

.fill-current {
  fill: currentColor;
}

.collapse {
  transform: rotate(180deg);
}

/* ==========================================================================
   UI Components - Tooltips
   ========================================================================== */

.tooltip-container {
  position: relative;
  cursor: pointer;
}

.tooltip {
  visibility: hidden;
  background-color: #333;
  color: #fff;
  text-align: center;
  border-radius: 4px;
  padding: 8px;
  position: absolute;
  z-index: 1;
  bottom: 100%;
  left: 100%;
  opacity: 0;
  transition: opacity 0.3s, transform 0.3s;
}

.tooltip-container:hover .tooltip {
  visibility: visible;
  opacity: 1;
  transform: translateY(45px);
  white-space: nowrap;
}

.macos-app .tooltip {
  background: rgba(255, 255, 255, 0.96);
  color: #1d1d1f;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 500;
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 1px 0 rgba(0, 0, 0, 0.04);
  bottom: auto;
  top: 50%;
  left: 70px;
  transform: translateY(-50%) translateX(0);
}

.macos-app .tooltip-container:hover .tooltip {
  transform: translateY(-50%) translateX(0);
}

.macos-app .tooltip:after {
  content: " ";
  position: absolute;
  left: -6px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-right: 6px solid rgba(255, 255, 255, 0.96);
}

.macos-app .tooltip:before {
  content: " ";
  position: absolute;
  left: -7px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-right: 7px solid rgba(0, 0, 0, 0.08);
}

/* ==========================================================================
   UI Components - macOS Toolbar
   ========================================================================== */

.macos-app .toolbar {
  flex: 0 0 72px !important;
}

.macos-app .toolbar>div {
  width: 64px !important;
  background: rgba(248, 249, 251, 0.65) !important;
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-right: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02), 0 8px 24px rgba(0, 0, 0, 0.06);
}

.macos-app .toolbar a {
  border-radius: 10px;
  transition: background-color 0.2s ease, transform 0.1s ease;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #1d1d1f;
}

.macos-app .toolbar a:hover {
  background-color: rgba(0, 0, 0, 0.06) !important;
}

.macos-app .toolbar a:active {
  background-color: rgba(0, 0, 0, 0.08) !important;
  transform: scale(0.98);
}

.macos-app .toolbar a:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.3);
}

.macos-app .toolbar .border-t {
  border-color: rgba(0, 0, 0, 0.08) !important;
}

.macos-app .toolbar .tooltip-container .tooltip {
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.14);
}

.macos-app .toolbar svg {
  width: 20px;
  height: 20px;
}

/* ==========================================================================
   UI Components - Dropdowns, Modals, Forms
   ========================================================================== */

.msd-file-dropdown {
  height: 40px;
  width: 378px;
  padding: 8px 36px 8px 12px;
  border: 1px solid rgba(0, 0, 0, 0.16);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02), 0 8px 24px rgba(0, 0, 0, 0.04);
  -webkit-appearance: none;
  appearance: none;
  font-size: 13px;
  color: #1d1d1f;
  outline: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 20 20'%3E%3Cpath fill='%231d1d1f' d='M5.5 7l4.5 6 4.5-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px 12px;
}

.msd-file-dropdown:focus {
  box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.3);
  border-color: rgba(0, 122, 255, 0.6);
}

.modal {
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 20px;
  background-color: #fff;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  z-index: 1;
  min-width: 500px;
}

.modal-title {
  font-size: 1.2rem;
  font-weight: bold;
  margin-bottom: 10px;
}

.input-group {
  margin-bottom: 15px;
}

.input-group label {
  display: block;
  margin-bottom: 5px;
  font-weight: bold;
}

.input-group input {
  width: 100%;
  padding: 8px;
  box-sizing: border-box;
  border: 1px solid #ccc;
  border-radius: 4px;
}

.btn-group {
  text-align: right;
}

.btn {
  padding: 8px 16px;
  margin-left: 8px;
  cursor: pointer;
  background-color: #007bff;
  color: #fff;
  border: none;
  border-radius: 4px;
}

.btn:hover {
  background-color: #0056b3;
}

.error-message {
  color: red;
  font-size: 0.8rem;
  margin-top: 5px;
}

.modal-backdrop {
  position: fixed;
  width: 100%;
  height: 100vh;
  top: 0;
  background: #656565bf;
  left: 0;
  display: none;
}

#context-menu {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  border: 1px solid #ccc;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
  padding: 10px 12px;
  z-index: 1000;
  border-radius: 5px;
}

/* ==========================================================================
   UI Components - Popovers, Notifications, Switches
   ========================================================================== */

.popover-container {
  position: relative;
  display: inline-block;
}

.popover-content {
  display: none;
  position: absolute;
  background: rgba(255, 255, 255, 0.95);
  padding: 20px;
  border-radius: 8px;
  text-align: center;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.14);
  max-height: 380px;
  left: 60px;
  top: 58px;
}

.popover-content .close-btn {
  position: absolute;
  top: 5px;
  right: 5px;
  cursor: pointer;
  width: 25px;
  font-size: 19px;
}

.popover-content-body {
  overflow: auto;
  height: 377px;
  margin-top: 15px;
}

.color-row {
  margin-bottom: 10px;
  display: flex;
  justify-content: space-around;
  align-items: center;
}

.color-row label {
  min-width: 201px;
  text-align: left;
}

.switch-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 10px 10px 0;
}

.label {
  margin-right: 10px;
}

.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}

.switch input {
  display: none;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  transition: 0.4s;
  border-radius: 34px;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  transition: 0.4s;
  border-radius: 50%;
}

input:checked+.slider {
  background-color: #015cc8cf;
}

input:focus+.slider {
  box-shadow: 0 0 1px #015cc8cf;
}

input:checked+.slider:before {
  transform: translateX(26px);
}

.notification {
  position: fixed;
  bottom: 35px;
  right: 15px;
  background-color: #2481e5;
  color: white;
  text-align: center;
  padding: 15px;
  border-radius: 10px;
  opacity: 0;
  transition: opacity 0.5s, transform 0.5s;
  transform: translateY(100%);
}

.notification.show {
  opacity: 1;
  transform: translateY(0);
}

footer {
  position: fixed;
  bottom: 0;
  width: 100%;
  background: rgba(250, 250, 252, 0.9);
  padding: 5px;
  text-align: center;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  z-index: 1000;
  font-size: 12px;
}

/* ==========================================================================
   Theme Styles - Dark Mode
   ========================================================================== */

.theme-dark {
  background: color(srgb 0.1158 0.1258 0.1299);
}

.theme-dark .page-title {
  color: white;
}

.theme-dark .divider {
  border-top-color: white;
  border-bottom-color: white;
}

.theme-dark .divider>div {
  border-color: white;
}

.theme-dark .note-description {
  background-color: #12335c;
  color: white;
}

.theme-dark .line-description {
  color: white;
}

.theme-dark .arrow {
  border-bottom-color: white;
}

.theme-dark .arrow::after {
  border-left-color: white;
}

.theme-dark .arrow-sync-external-input:before {
  border-color: white;
  background-color: white;
}

/* Dark mode external input circle (the * dot) */
.theme-dark .external-input-circle .external-input-circle-fill {
  fill: #ffffff !important;
}

/* Dark mode external input/output circles (pseudo-selectors) */
.theme-dark .external-input::before,
.theme-dark .external-output::after {
  background-color: #e0e0e0 !important;
}

/* Dark mode arrow heads and lines for external input/output */
.theme-dark .external-input .arrow-filled,
.theme-dark .external-output .arrow-filled,
.theme-dark .arrow-left.filled,
.theme-dark .arrow-right.filled,
.theme-dark .arrow-filled {
  background-color: #e0e0e0 !important;
}

.theme-dark .message .message-line,
.theme-dark .arrow-open,
.theme-dark .self-message,
.theme-dark .arrow-right.open,
.theme-dark .arrow-left.open {
  border-color: #e0e0e0 !important;
}

/* .theme-dark .external-input .message-line,
.theme-dark .external-output .message-line {
  border-top-color: #ffffff !important;
} */

/* .theme-dark .external-input.dashed .message-line,
.theme-dark .external-output.dashed .message-line {
  border-top-color: #ffffff !important;
} */

.theme-dark .arrow-sync-ltr::before {
  border-left-color: white;
}

.theme-dark .arrow-sync-rtl:before {
  border-right-color: white;
}

.theme-dark .arrow-self {
  border-color: white;
}

.theme-dark .arrow-self::after {
  border-right-color: white;
}

.theme-dark .section h2 {
  border-color: rgb(108, 108, 108);
  background-color: color(srgb 0.1698 0.1848 0.1889);
  color: white;
}

.theme-dark .box-title {
  color: white;
}

/* Dark mode group description background */
.theme-dark .group-description {
  background-color: #2b2f30 !important;
  color: #ffffff !important;
}

/* Dark mode frame-item span (frame labels) */
.theme-dark .frame-item>span {
  color: #ffffff !important;
}

/* Dark mode alt/opt/loop/par/neg frame labels (the .frame-type-label spans) */
.theme-dark .frame-type-label {
  background-color: #181717 !important;
  color: #ffffff !important;
}

/* Dark mode box colors - override sequence code colors */
.theme-dark .section-box[data-box-index="0"] {
  background-color: #828386 !important;
  opacity: 0.48 !important;
}

.theme-dark .section-box[data-box-index="1"] {
  background-color: #57584B !important;
  opacity: 0.5 !important;
}

.theme-dark .section-box[data-box-index="2"] {
  background-color: #D5DCC5 !important;
  opacity: 0.4 !important;
}

.theme-dark .section-box[data-box-index="3"] {
  background-color: #79a99c !important;
  opacity: 0.27 !important;
}

.theme-dark .section-box[data-box-index="4"] {
  background-color: #32a0ae !important;
  opacity: 0.3 !important;
}

.destroy-marker {
  position: absolute;
  font-size: 26px;
  color: rgb(0, 0, 0);
  line-height: 0;
  z-index: 100;
  left: -16px;
  top: 2px;
  font-weight: normal;
  font-family: -apple-system-body;
}

/* ==========================================================================
   Watermark Styles
   ========================================================================== */
:root {
  /* tweak these to change appearance */
  --wm-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  --wm-size: 260;
  /* svg width in px (affects spacing) */
  --wm-height: 120;
  /* svg height in px */
  --wm-rotation: -25;
  /* rotation inside svg */
  --wm-opacity: 0.01;
  /* overall opacity of the tiled svg */
  --wm-color: 0, 0, 0;
  /* RGB of the watermark text (no alpha) */
  --wm-scale: 1;
  /* scale factor for the SVG content */
  --wm-blend: multiply;
  /* mix-blend-mode for subtle blending (optional) */
}

/* fallback approach (CSS-generated rotated text) if you prefer no data-URL SVG */
.watermark-fallback {
  display: none;
  /* set to block to use fallback */
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: var(--wm-opacity);
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  align-content: start;
}

/* tiled watermark overlay using an inline SVG data-URL */
.watermark-tile {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: var(--wm-opacity);
  mix-blend-mode: var(--wm-blend);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='120' viewBox='0 0 260 120'><style>@import url('https://fonts.googleapis.com/css2?family=Inter:wght@600&display=swap'); text{font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; font-weight:600; font-size:28px; fill: rgba(0,0,0,1); }</style><g transform='scale(1)'><text x='10' y='86' transform='rotate(-25 10 86)'>Sequence Chart</text></g></svg>");
}

.watermark-fallback span {
  transform: rotate(var(--wm-rotation));
  font-weight: 700;
  font-size: 28px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.12;
  justify-self: center;
  align-self: center;
  user-select: none;
  white-space: nowrap;
}

/* Dark mode line stroke color */
.theme-dark .line line {
  stroke: #ffffff !important;
}

.theme-dark .msd-container .line svg {
  stroke: #ffffff !important;
}

/* Dark mode activation section background */
.theme-dark .activate-section {
  background-color: rgb(105, 105, 105) !important;
}

/* Dark mode divider styling */
.theme-dark .divider>div {
  color: #ffffff !important;
  background-color: rgb(64, 64, 64) !important;
}


/* Monochrome mode */

.monochrome-mode {
  background-color: #1e1e1e !important;
}

.monochrome-mode .section h2 {
  background-color: #2d2d2d !important;
  border-color: #4a4a4a !important;
  color: #e0e0e0 !important;
}

.monochrome-mode .section:nth-child(even) .section-box {
  background-color: #2d2d2d !important;
  border-color: #4a4a4a !important;
  color: #e0e0e0 !important;
}

.monochrome-mode .section:nth-child(odd) .section-box {
  background-color: #3d3d3d !important;
  border-color: #4a4a4a !important;
  color: #e0e0e0 !important;
}

.monochrome-mode .line-description {
  color: #e0e0e0 !important;
}

.monochrome-mode .line svg line {
  stroke: #6a6a6a !important;
}

.monochrome-mode .arrow-sync-dashed,
.monochrome-mode .arrow-sync-solid {
  border-bottom-color: #6a6a6a !important;
}

.monochrome-mode .arrow-self {
  border-color: #6a6a6a !important;
}

.monochrome-mode .note-description {
  background-color: #2d2d2d !important;
  border-color: #4a4a4a !important;
  color: #e0e0e0 !important;
}

.monochrome-mode .frame-item {
  background-color: rgba(45, 45, 45, 0.3) !important;
  border-color: #4a4a4a !important;
}

.monochrome-mode .frame-type-label {
  background-color: #1a1a1a !important;
  color: #e0e0e0 !important;
}

.monochrome-mode .divider {
  color: #e0e0e0 !important;
  border-color: #4a4a4a !important;
}

.monochrome-mode .divider>div {
  background-color: #2d2d2d !important;
  border-color: #4a4a4a !important;
}

.monochrome-mode .activate-section {
  background-color: rgba(106, 106, 106, 0.2) !important;
}

html.monochrome-mode {
  background-color: #1e1e1e !important;
}

.monochrome-mode .page-title,
.monochrome-mode .box-title,
.page-title.monochrome-mode {
  color: #e0e0e0 !important;
}

.monochrome-mode .arrow-sync-ltr:after {
  border-left-color: #6a6a6a !important;
}

.monochrome-mode .arrow-sync-rtl:before {
  border-right-color: #6a6a6a !important;
}

.monochrome-mode .arrow-async-ltr:after {
  border-right-color: #6a6a6a !important;
  border-top-color: #6a6a6a !important;
}

.monochrome-mode .arrow-async-rtl:before {
  border-left-color: #6a6a6a !important;
  border-bottom-color: #6a6a6a !important;
}

.monochrome-mode .arrow-self:after {
  border-right-color: #6a6a6a !important;
}

.monochrome-mode .external-input-circle circle {
  fill: #6a6a6a !important;
  stroke: #6a6a6a !important;
}

/* Monochrome mode external input/output circles (pseudo-selectors) */
.monochrome-mode .external-input::before,
.monochrome-mode .external-output::after {
  background-color: #e0e0e0 !important;
}

/* Monochrome mode arrow heads and lines for external input/output */
.monochrome-mode .external-input .arrow-filled,
.monochrome-mode .external-output .arrow-filled,
.monochrome-mode .arrow-left.filled,
.monochrome-mode .arrow-right.filled,
.monochrome-mode .arrow-filled {
  background-color: #e0e0e0 !important;
}

.monochrome-mode .message-line,
.monochrome-mode .arrow-open,
.monochrome-mode .self-message,
.monochrome-mode .arrow-right.open,
.monochrome-mode .arrow-left.open {
  border-color: #e0e0e0 !important;
}

/* .monochrome-mode .external-input .message-line,
.monochrome-mode .external-output .message-line {
  border-top-color: #ffffff !important;
}

.monochrome-mode .external-input.dashed .message-line,
.monochrome-mode .external-output.dashed .message-line {
  border-top-color: #ffffff !important;
} */

.monochrome-mode .destroy-marker {
  color: #e0e0e0 !important;
}

.monochrome-mode .actor-stick-figure .actor {
  fill: #6a6a6a !important;
  stroke: #6a6a6a !important;
}

.monochrome-mode .boundary-icon,
.monochrome-mode .control-icon,
.monochrome-mode .entity-icon,
.monochrome-mode .database-cylinder,
.monochrome-mode .queue-cylinder {
  fill: #6a6a6a !important;
  stroke: #6a6a6a !important;
}

.monochrome-mode circle.control-icon,
.monochrome-mode polygon.control-icon {
  stroke: #e0e0e0 !important;

}

.monochrome-mode .alt-else>span,
.monochrome-mode .frame-item>span,
.monochrome-mode .frame-type-label {
  color: #e0e0e0;

}

.monochrome-mode .alt-else {
  border-bottom: 1px dashed #e0e0e0;
}

.monochrome-mode .group-description,
.monochrome-mode .frame-type-label {
  border-color: #6a6a6a !important;
}

.monochrome-mode .group-description::after,
.monochrome-mode .frame-type-label::after {
  background: #6a6a6a !important;
}

.monochrome-mode .ref-text {
  color: #e0e0e0 !important;
}